﻿using System;
using System.Collections.Generic;
using System.Text;

namespace VisionCloud.Domain.DtoModel.Fms
{
    public class SaveCeilingFloorRqDto : WdcBaseRqDto
    {
        //public bool IsBigVersionUpgrade { set; get; }
        public string SaveType { set; get; } = "CURRENT_VERSION";
        public bool IsCollectionData { set; get; }
        public bool? IsVisionData { set; get; }
        public string UpdateTime { set; get; }
        public string Remark { set; get; }
        /// <summary>
        /// 上传时返回的字段量，与roomList相同内容，字段名不同
        /// </summary>
        public List<RoomSetting> RoomSettings { set; get; }
        /// <summary>
        /// 查询时返回的字段名
        /// </summary>
        public List<RoomSetting> RoomList { set; get; }
        public GrayMap GrayMap { set; get; }
    }

    public class RoomSetting
    {
        public double Angle { set; get; }
        public List<Point> Boundary { set; get; }
        public double CeilHeight { set; get; }
        public bool? IsConfirm { set; get; }
        public LocalData Local { set; get; }
        public Point OriginPoint { set; get; }
        public ParamDto Param { set; get; }
        public string RoomCode { set; get; }
        public VisionImage VisionImage { set; get; }

        public List<VisionImage> VisionImages { set; get; } = new List<VisionImage>();
    }

    public class ParamDto
    {
        public List<Point> Barrier { set; get; }
        public List<DateValue> Datas { set; get; } = new List<DateValue>();
        public double GridSize { set; get; }
        public List<Point> UnPolishGrids { set; get; }
    }
    public class VisionImage
    {
        public Point3D EndPoint { set; get; }
        public double Height { set; get; }
        public double OffsetX { set; get; }
        public double OffsetY { set; get; }
        public Point3D StartPoint { set; get; }

        public string Url { set; get; }
        public double Width { set; get; }
    }
    public class LocalData
    {
        public List<FaceDto> Faces { set; get; }
        public List<Point> LocalBoundary { set; get; }
    }
    public class FaceDto
    {
        public List<string> Inner { set; get; }
        public List<Point> Outer { set; get; }
    }
}
